
;(function() {

    'use strict'

    var c = document.getElementById('background');
    var ctx = c.getContext('2d');
    var w = c.width = window.innerWidth;
    var h = c.height = window.innerHeight;
    var cx = w / 2;
    var cy = h / 2;
    var Box = function(x, y, vx, color) {
        this.color = color;
        this.vx = vx;
        this.x = x;
        this.y = y;
        this.w = 10 + Math.random() * 50;
        this.h = 5 + Math.random() * 300;
    };
    Box.prototype = {
        constructor: Box,
        update: function() {
            this.x += this.vx;
            if(this.x < -this.w / 2) {
                this.x = w + this.w / 2;
            }
        },
        render: function(ctx) {
            ctx.save();
            ctx.fillStyle = this.color;
            ctx.translate(this.x, this.y);
            ctx.fillRect(-this.w/2, -this.h, this.w, this.h);
            ctx.restore();
        }
    };

    var ctr = 50;
    var boxes = [];
    var boxes2 = [];
    var boxes3 = [];
    var box;
    var speed = -1.5;

    for(var i = 0; i < ctr; i++) {
        box = new Box(Math.random() * w, h, speed * 0.5, '#e5e5e5');
        boxes.push(box);
    }
    for(var i = 0; i < ctr; i++) {
        box = new Box(Math.random() * w, h, speed * 0.8, '#cccccc');
        boxes2.push(box);
    }
    for(var i = 0; i < ctr; i++) {
        box = new Box(Math.random() * w, h, speed, '#999999');
        boxes3.push(box);
    }

    requestAnimationFrame(function loop() {
        requestAnimationFrame(loop);
        ctx.clearRect(0, 0, w, h);
        ctx.globalAlpha = 0.9;
        for(var i = 0, len = boxes.length; i < len; i++) {
            box = boxes[i];
            box.update();
            box.render(ctx);
        }
        for(var i = 0, len = boxes2.length; i < len; i++) {
            box = boxes2[i];
            box.update();
            box.render(ctx);
        }
        for(var i = 0, len = boxes3.length; i < len; i++) {
            box = boxes3[i];
            box.update();
            box.render(ctx);
        }
    });

})();